﻿///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2023, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

#Область ПрограммныйИнтерфейс

#Область УстаревшиеПроцедурыИФункции

#Область КонструкторыПараметровПрограммногоИнтерфейса

// Устарела. Следует использовать АдминистрированиеКластера.ПараметрыАдминистрированияКластера.
// Конструктор структуры, описывающей параметры подключения к администрируемому
// кластеру серверов.
//
// Возвращаемое значение:
//  Структура:
//    * ТипПодключения - Строка - возможные значения:
//        "COM" - при подключении к агенту сервера с использованием COM-объекта V8*.ComConnector,
//        "RAS" - при подключении к серверу администрирования (ras) с использованием консольного
//                клиента сервера администрирования (rac),
//    * АдресАгентаСервера - Строка - сетевой адрес агента сервера (только при ТипПодключения = "COM"),
//    * ПортАгентаСервера - Число - сетевой порт агента сервера (только при ТипПодключения = "COM"),
//      типичное значение - 1540,
//    * АдресСервераАдминистрирования - Строка - сетевой адрес сервера администрирования ras (только
//      при ТипПодключения = "RAS"),
//    * ПортСервераАдминистрирования - Число - сетевой порт сервера администрирования ras (только при
//      ТипПодключения = "RAS"), типичное значение - 1545,
//    * ПортКластера - Число - сетевой порт менеджера администрируемого кластера, типичное значение -1541,
//    * ИмяАдминистратораКластера - Строка - имя учетной записи администратора кластера (если для кластера
//      не задан список администраторов - используется пустая строка),
//    * ПарольАдминистратораКластера - Строка - пароль учетной записи администратора кластера (если
//      для кластера не задан список администраторов или для учетной записи не установлен пароль -
//      используется пустая строка).
//
Функция ПараметрыАдминистрированияКластера() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("ТипПодключения", "COM"); // "COM" или "RAS"
	
	// Только для "COM"
	Результат.Вставить("АдресАгентаСервера", "");
	Результат.Вставить("ПортАгентаСервера", 1540);
	
	// Только для "RAS"
	Результат.Вставить("АдресСервераАдминистрирования", "");
	Результат.Вставить("ПортСервераАдминистрирования", 1545);
	
	Результат.Вставить("ПортКластера", 1541);
	Результат.Вставить("ИмяАдминистратораКластера", "");
	Результат.Вставить("ПарольАдминистратораКластера", "");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера.
// Конструктор структуры, описывающей параметры подключения к администрируемой информационной
//  базе кластера.
//
// Возвращаемое значение: 
//  Структура:
//    * ИмяВКластере - Строка - имя администрируемой информационной базы в кластере серверов,
//    * ИмяАдминистратораИнформационнойБазы - Строка - имя пользователя информационной базы с правами
//      администратора (если для информационной базы не задан список пользователей ИБ - используется
//      пустая строка),
//    * ПарольАдминистратораИнформационнойБазы - Строка - пароль пользователя информационной базы
//      с правами администратора (если для информационной базы не задан список пользователей ИБ или
//      для пользователя ИБ не установлен пароль - используется пустая строка).
//
Функция ПараметрыАдминистрированияИнформационнойБазыКластера() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("ИмяВКластере", "");
	Результат.Вставить("ИмяАдминистратораИнформационнойБазы", "");
	Результат.Вставить("ПарольАдминистратораИнформационнойБазы", "");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.ПроверитьПараметрыАдминистрирования.
// Проверяет корректность параметров администрирования.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  ПроверятьПараметрыАдминистрированияКластера - Булево - флаг необходимости проверки параметров администрирования кластера,
//  ПроверятьПараметрыАдминистрированияИнформационнойБазы - Булево - флаг необходимости проверки параметров
//                                                                   администрирования кластера.
//
Процедура ПроверитьПараметрыАдминистрирования(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено,
	ПроверятьПараметрыАдминистрированияКластера = Истина,
	ПроверятьПараметрыАдминистрированияИнформационнойБазы = Истина) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	МенеджерАдминистрирования.ПроверитьПараметрыАдминистрирования(ПараметрыАдминистрированияКластера, ПараметрыАдминистрированияИБ, ПроверятьПараметрыАдминистрированияИнформационнойБазы, ПроверятьПараметрыАдминистрированияКластера);
	
КонецПроцедуры

#КонецОбласти

#Область БлокировкаСеансовИРегламентныхЗаданий

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваБлокировкиСеансовИРегламентныхЗаданий.
// Конструктор структуры, описывающей свойства блокировки сеансов и регламентных заданий
//  информационной базы.
//
// Возвращаемое значение:
//  Структура:
//    * БлокировкаСеансов - Булево - флаг установки блокировки новых сеансов с информационной базой,
//    * ДатаС - Дата - (Дата и время) момент начала блокировки новых сеансов с информационной базой,
//    * ДатаПо - Дата - (Дата и время) момент окончания блокировки новых сеансов с информационной базой,
//    * Сообщение - Строка - сообщение, отображаемое пользователю при попытке установки нового сеанса
//      с информационной базой при установленной блокировке новых сеансов,
//    * КодРазрешения - Строка - код обхода блокировки новых сеансов с информационной базой,
//    * БлокировкаРегламентныхЗаданий - Булево - флаг блокировки выполнения регламентных заданий
//      информационной базы.
//
Функция СвойстваБлокировкиСеансовИРегламентныхЗаданий() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("БлокировкаСеансов");
	Результат.Вставить("ДатаС");
	Результат.Вставить("ДатаПо");
	Результат.Вставить("Сообщение");
	Результат.Вставить("КодРазрешения");
	Результат.Вставить("ПараметрБлокировки");
	Результат.Вставить("БлокировкаРегламентныхЗаданий");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.БлокировкаСеансовИЗаданийИнформационнойБазы.
// Возвращает текущее состояние блокировки сеансов и регламентных заданий для информационной базы.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//
// Возвращаемое значение: 
//    см. АдминистрированиеКластераКлиентСервер.СвойстваБлокировкиСеансовИРегламентныхЗаданий.
//
Функция БлокировкаСеансовИЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Результат = МенеджерАдминистрирования.БлокировкаСеансовИЗаданийИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ);
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.УстановитьБлокировкуСеансовИЗаданийИнформационнойБазы.
// Устанавливает новое состояние блокировки сеансов и регламентных заданий для информационной базы.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  СвойстваБлокировкиСеансовИЗаданий - см. АдминистрированиеКластераКлиентСервер.СвойстваБлокировкиСеансовИРегламентныхЗаданий.
//
Процедура УстановитьБлокировкуСеансовИЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач СвойстваБлокировкиСеансовИЗаданий) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.УстановитьБлокировкуСеансовИЗаданийИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		СвойстваБлокировкиСеансовИЗаданий);
	
КонецПроцедуры

// Устарела. Следует использовать АдминистрированиеКластера.СнятьБлокировкуСеансовИЗаданийИнформационнойБазы.
// Снимает блокировку сеансов и регламентных заданий для информационной базы.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//
Процедура СнятьБлокировкуСеансовИЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	СвойстваБлокировки = СвойстваБлокировкиСеансовИРегламентныхЗаданий();
	СвойстваБлокировки.БлокировкаСеансов = Ложь;
	СвойстваБлокировки.ДатаС = Неопределено;
	СвойстваБлокировки.ДатаПо = Неопределено;
	СвойстваБлокировки.Сообщение = "";
	СвойстваБлокировки.КодРазрешения = "";
	СвойстваБлокировки.БлокировкаРегламентныхЗаданий = Ложь;
	
	УстановитьБлокировкуСеансовИЗаданийИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		СвойстваБлокировки);
	
КонецПроцедуры

#КонецОбласти

#Область БлокировкаРегламентныхЗаданий

// Устарела. Следует использовать АдминистрированиеКластера.БлокировкаРегламентныхЗаданийИнформационнойБазы.
// Возвращает текущее состояние блокировки регламентных заданий для информационной базы.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//
// Возвращаемое значение:
//    Булево - Истина, если удалось заблокировать регламентные задания, Ложь - иначе.
//
Функция БлокировкаРегламентныхЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Результат = МенеджерАдминистрирования.БлокировкаРегламентныхЗаданийИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ);
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.УстановитьБлокировкуРегламентныхЗаданийИнформационнойБазы.
// Устанавливает новое состояние блокировки регламентных заданий для информационной базы.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера
//  БлокировкаРегламентныхЗаданий - Булево - флаг установки блокировки регламентных заданий информационной базы.
//
Процедура УстановитьБлокировкуРегламентныхЗаданийИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач БлокировкаРегламентныхЗаданий) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.УстановитьБлокировкуРегламентныхЗаданийИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		БлокировкаРегламентныхЗаданий);
	
КонецПроцедуры

#КонецОбласти

#Область СеансыИнформационнойБазы

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваСеанса.
// Конструктор структуры, описывающей свойства сеанса информационной базы.
//
// Возвращаемое значение: 
//  Структура:
//   * Номер - Число - номер сеанса. Уникален среди всех сеансов информационной базы,
//   * ИмяПользователя - Строка - имя аутентифицированного пользователя информационной базы,
//   * ИмяКлиентскогоКомпьютера - Строка - имя или сетевой адрес компьютера, установившего
//     сеанс с информационной базой,
//   * ИдентификаторКлиентскогоПриложения - Строка - идентификатор приложения, установившего сеанс
//     (см. описание к функции глобального контекста ПредставлениеПриложения),
//   * ИдентификаторЯзыка - Строка - идентификатор языка интерфейса,
//   * МоментСозданияСеанса - Дата - (Дата и время) момент установки сеанса,
//   * МоментПоследнейАктивностиСеанса - Дата - (Дата и время) момент последней активности сеанса,
//   * Блокировка - Число - номер сеанса, который является причиной ожидания управляемой транзакционной
//     блокировки, в том случае, если сеанс выполняет установку управляемых транзакционных блокировок
//     и ожидает снятия блокировок, установленных другим сеансом (иначе - значение равно 0),
//   * БлокировкаСУБД - Число - номер сеанса, который является причиной ожидания транзакционной
//     блокировки, в том случае, если сеанс исполняет запрос к СУБД и ожидает транзакционную
//     блокировку, установленную другим сеансом (иначе - значение равно 0),
//   * Передано - Число - объем данных, переданных меду сервером 1С:Предприятия и клиентским приложением
//     данного сеанса с момента начала сеанса (в байтах),
//   * ПереданоЗа5Минут - Число - объем данных, переданных между сервером 1С:Предприятия и клиентским
//     приложением данного сеанса за последние 5 минут (в байтах),
//   * СерверныхВызовов - Число - количество вызовов сервера 1С:Предприятия от имена данного сеанса с
//     момента начала сеанса,
//   * СерверныхВызововЗа5Минут - Число - количество вызовов сервера 1С:Предприятия от имени данного сеанса
//     за последние 5 минут,
//   * ДлительностьСерверныхВызовов - Число - время исполнения вызовов сервера 1С:Предприятия от имени
//     данного сеанса с момента начала сеанса (в секундах),
//   * ДлительностьТекущегоСерверногоВызова - Число - интервал времени в миллисекундах, прошедший с момента начала
//     обращения, в случае, если сеанс выполняется вызов сервера 1С:Предприятия (иначе - значение равно 0),
//   * ДлительностьСерверныхВызововЗа5Минут - Число - время исполнения вызовов сервера 1С:Предприятия от имени
//     данного сеанса за последние 5 минут (в миллисекундах),
//   * ПереданоСУБД - Число - количество данных, переданных и полученных от СУБД от имени данного сеанса с
//     момента начала сеанса (в байтах),
//   * ПереданоСУБДЗа5Минут - Число - количество данных, переданных и полученных от СУБД от имени данного сеанса
//     за последние 5 минут (в байтах),
//   * ДлительностьВызововСУБД - Число - время исполнения запросов к СУБД от имени данного сеанса с момента начала
//     сеанса (в миллисекундах),
//   * ДлительностьТекущегоВызоваСУБД - Число - интервал времени в миллисекундах, прошедший с начала выполнения
//     запроса в случае, если сеанс выполняет запрос к СУБД (иначе - значение равно 0),
//   * ДлительностьВызововСУБДЗа5Минут - Число - суммарное время исполнения запросов к СУБД от имени данного сеанса
//     за последние 5 минут (в миллисекундах),
//   * СоединениеСУБД - Строка - номер соединения с СУБД в терминах СУБД в том случае, если в момент получения списка
//     сеансов выполняется запрос к СУБД, открыта транзакция или определены временные таблицы (т.е. захвачено
//     соединение с СУБД). Если соединение с СУБД не захвачено - значение равно пустой строке,
//   * ВремяСоединенияСУБД - Число - время соединения с СУБД с момента захвата (в миллисекундах). Если соединение с.
//     СУБД не захвачено - значение равно 0,
//   * МоментЗахватаСоединенияСУБД - Дата - (Дата и время) момент времени, когда соединение с СУБД было последний раз
//     захвачено другим сеансом.
//
Функция СвойстваСеанса() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("Номер");
	Результат.Вставить("ИмяПользователя");
	Результат.Вставить("ИмяКлиентскогоКомпьютера");
	Результат.Вставить("ИдентификаторКлиентскогоПриложения");
	Результат.Вставить("ИдентификаторЯзыка");
	Результат.Вставить("МоментСозданияСеанса");
	Результат.Вставить("МоментПоследнейАктивностиСеанса");
	Результат.Вставить("Блокировка");
	Результат.Вставить("БлокировкаСУБД");
	Результат.Вставить("Передано");
	Результат.Вставить("ПереданоЗа5Минут");
	Результат.Вставить("СерверныхВызовов");
	Результат.Вставить("СерверныхВызововЗа5Минут");
	Результат.Вставить("ДлительностьСерверныхВызовов");
	Результат.Вставить("ДлительностьТекущегоСерверногоВызова");
	Результат.Вставить("ДлительностьСерверныхВызововЗа5Минут");
	Результат.Вставить("ПереданоСУБД");
	Результат.Вставить("ПереданоСУБДЗа5Минут");
	Результат.Вставить("ДлительностьВызововСУБД");
	Результат.Вставить("ДлительностьТекущегоВызоваСУБД");
	Результат.Вставить("ДлительностьВызововСУБДЗа5Минут");
	Результат.Вставить("СоединениеСУБД");
	Результат.Вставить("ВремяСоединенияСУБД");
	Результат.Вставить("МоментЗахватаСоединенияСУБД");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СеансыИнформационнойБазы.
// Возвращает описания сеансов информационной базы.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  Фильтр - Массив из Структура:
//             * Свойство - см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса
//             * ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения,
//             * Значение - Число
//                        - Строка
//                        - Дата
//                        - Булево
//                        - СписокЗначений
//                        - Массив
//                        - Структура - значение, с которым
//               сравнивается значение соответствующего свойства сеанса.
//         - Структура - структура: ключ - Имя свойства сеанса (см. выше), значение - значение, с которым
//           выполняется сеанс. При использовании данного варианта описания фильтра сравнение всегда выполняется на
//           равенство.
//
// Возвращаемое значение:
//   Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса
//
Функция СеансыИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено, Знач Фильтр = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.СеансыИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		Фильтр);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.УдалитьСеансыИнформационнойБазы.
// Удаляет сеансы с информационной базой по фильтру.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  Фильтр - Массив из Структура:
//             * Свойство - см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса
//             * ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения,
//             * Значение - Число
//                        - Строка
//                        - Дата
//                        - Булево
//                        - СписокЗначений
//                        - Массив
//                        - Структура - значение, с которым
//               сравнивается значение соответствующего свойства сеанса,
//         - Структура - структура: ключ - Имя свойства сеанса (см. выше), значение - значение, с которым
//           выполняется сеанс. При использовании данного варианта описания фильтра сравнение всегда выполняется на равенство.
//
Процедура УдалитьСеансыИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено, Знач Фильтр = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.УдалитьСеансыИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		Фильтр);
	
КонецПроцедуры

#КонецОбласти

#Область СоединенияСИнформационнойБазой

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваСоединения.
// Конструктор структуры, описывающей свойства соединения с информационной базой.
//
// Возвращаемое значение:
//  Структура:
//    * Номер - Число - номер соединения с информационной базой,
//    * ИмяПользователя - Строка - имя пользователя 1С:Предприятия, подсоединенного к информационной базе,
//    * ИмяКлиентскогоКомпьютера - Строка - имя компьютера, с которого установлено соединение,
//    * ИдентификаторКлиентскогоПриложения - Строка - идентификатор приложения, установившего соединение (см. описание к
//                                                    функции глобального контекста ПредставлениеПриложения),
//    * МоментУстановкиСоединения - Дата - (Дата и время) момент установки соединения,
//    * РежимСоединенияСИнформационнойБазой - Число - режим соединения с информационной базой (0 -
//      разделяемый, 1 - монопольный),
//    * РежимСоединенияСБазойДанных - Число - режим соединения с базой данных (0 - соединение не установлено,
//      1 - разделяемый, 2 - монопольный),
//    * БлокировкаСУБД - Число - идентификатор соединения, блокирующего работу данного соединения в СУБД,
//    * Передано - Число - объем данных, полученных и отправленных соединением,
//    * ПереданоЗа5Минут - Число - объем данных, полученных и отправленных соединением за последние 5 минут,
//    * СерверныхВызовов - Число - количество серверных вызовов,
//    * СерверныхВызововЗа5Минут - Число - количество серверных вызовов соединения за последние 5 минут,
//    * ПереданоСУБД - Число - объем данных, переданных между сервером 1С:Предприятия и сервером баз данных,
//      с момента установки данного соединения,
//    * ПереданоСУБДЗа5Минут - Число - объем данных, переданных между сервером 1С:Предприятия и сервером баз
//        данных за последние 5 минут,
//    * СоединениеСУБД - Строка - идентификатор процесса соединения с СУБД (если на момент получения списка
//      соединений данное соединение выполняло обращение к серверу СУБД, в противном случае - значение равно пустой
//      строке). Идентификатор возвращается в терминах сервера СУБД,
//    * ВремяСУБД - Число - время в секундах, в течении которого выполняется обращение к серверу СУБД (если на момент
//      получения списка соединений данное соединение выполняло обращение к серверу СУБД, в противном случае - значение
//      равно 0),
//    * МоментЗахватаСоединенияСУБД - Дата - (Дата и время) момент последнего захвата соединения с сервером СУБД,
//    * ДлительностьСерверныхВызовов - Число - длительность всех серверных вызовов соединения,
//    * ДлительностьВызововСУБД - Число - время вызовов СУБД, инициированных соединением,
//    * ДлительностьТекущегоСерверногоВызова - Число - длительность текущего серверного вызова,
//    * ДлительностьТекущегоВызоваСУБД - Число - длительность текущего вызова сервера СУБД,
//    * ДлительностьСерверныхВызововЗа5Минут - Число - длительность серверных вызовов соединения за последние 5 минут,
//    * ДлительностьВызововСУБДЗа5Минут - Число - длительность вызовов соединения СУБД за последние 5 минут.
//
Функция СвойстваСоединения() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("Номер");
	Результат.Вставить("ИмяПользователя");
	Результат.Вставить("ИмяКлиентскогоКомпьютера");
	Результат.Вставить("ИдентификаторКлиентскогоПриложения");
	Результат.Вставить("МоментУстановкиСоединения");
	Результат.Вставить("РежимСоединенияСИнформационнойБазой");
	Результат.Вставить("РежимСоединенияСБазойДанных");
	Результат.Вставить("БлокировкаСУБД");
	Результат.Вставить("Передано");
	Результат.Вставить("ПереданоЗа5Минут");
	Результат.Вставить("СерверныхВызовов");
	Результат.Вставить("СерверныхВызововЗа5Минут");
	Результат.Вставить("ПереданоСУБД");
	Результат.Вставить("ПереданоСУБДЗа5Минут");
	Результат.Вставить("СоединениеСУБД");
	Результат.Вставить("ВремяСУБД");
	Результат.Вставить("МоментЗахватаСоединенияСУБД");
	Результат.Вставить("ДлительностьСерверныхВызовов");
	Результат.Вставить("ДлительностьВызововСУБД");
	Результат.Вставить("ДлительностьТекущегоСерверногоВызова");
	Результат.Вставить("ДлительностьТекущегоВызоваСУБД");
	Результат.Вставить("ДлительностьСерверныхВызововЗа5Минут");
	Результат.Вставить("ДлительностьВызововСУБДЗа5Минут");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СоединенияСИнформационнойБазой.
// Возвращает описания соединений с информационной базой.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  Фильтр - Массив из Структура:
//             * Свойство - см. АдминистрированиеКластераКлиентСервер.СвойстваСоединения
//             * ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения, вид сравнения значений
//               соединений с указанным в условии фильтра,
//             * Значение - Число
//                        - Строка
//                        - Дата
//                        - Булево
//                        - СписокЗначений
//                        - Массив
//                        - Структура - значение, с которым
//               сравнивается значение соответствующего свойства соединения,
//         - Структура - структура: ключ - Имя свойства соединения (см. выше), значение - значение, с которым
//           выполняется сравнение. При использовании данного варианта описания фильтра сравнение всегда выполняется на равенство.
//
// Возвращаемое значение: 
//   Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваСоединения.
//
Функция СоединенияСИнформационнойБазой(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено, Знач Фильтр = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.СоединенияСИнформационнойБазой(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		Фильтр);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.РазорватьСоединенияСИнформационнойБазой.
// Разрывает соединения с информационной базой по фильтру.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  Фильтр - Массив из Структура:
//              * Свойство - см. АдминистрированиеКластераКлиентСервер.СвойстваСоединения
//              * ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения, вид сравнения значений
//                соединений с указанным в условии фильтра,
//              * Значение - Число
//                         - Строка
//                         - Дата
//                         - Булево
//                         - СписокЗначений
//                         - Массив
//                         - Структура - значение, с которым
//                сравнивается значение соответствующего свойства соединения,
//         - Структура - структура: ключ - Имя свойства соединения (см. выше), значение - значение, с которым
//           выполняется сравнение. При использовании данного варианта описания фильтра сравнение всегда выполняется на равенство.
//
Процедура РазорватьСоединенияСИнформационнойБазой(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено, Знач Фильтр = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.РазорватьСоединенияСИнформационнойБазой(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		Фильтр);
	
КонецПроцедуры

#КонецОбласти

#Область ПрофилиБезопасности

// Устарела. Следует использовать АдминистрированиеКластера.ПрофильБезопасностиИнформационнойБазы.
// Возвращает имя профиля безопасности, назначенного для информационной базы.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//
// Возвращаемое значение:
//  Строка - имя профиля безопасности, назначенного для информационной базы. Если
//  для информационной базы не назначен профиль безопасности - возвращается пустая строка.
//
Функция ПрофильБезопасностиИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.ПрофильБезопасностиИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.ПрофильБезопасностиБезопасногоРежимаИнформационнойБазы.
// Возвращает имя профиля безопасности, назначенного для информационной базы в качестве профиля безопасности
//  безопасного режима.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//
// Возвращаемое значение:
//  Строка - имя профиля безопасности, назначенного для информационной базы в качестве профиля
//  безопасности безопасного режима. Если для информационной базы не назначен профиль безопасности - возвращается пустая
//  Строка
//
Функция ПрофильБезопасностиБезопасногоРежимаИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено) Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.ПрофильБезопасностиБезопасногоРежимаИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.УстановитьПрофильБезопасностиИнформационнойБазы.
// Назначает для информационной базы использование профиля безопасности.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  ИмяПрофиля - Строка - имя профиля безопасности. Если передана пустая строка - для информационной базы будет
//    отключено использование профиля безопасности.
//
Процедура УстановитьПрофильБезопасностиИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено, Знач ИмяПрофиля = "") Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.УстановитьПрофильБезопасностиИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		ИмяПрофиля);
	
КонецПроцедуры

// Устарела. Следует использовать АдминистрированиеКластера.УстановитьПрофильБезопасностиБезопасногоРежимаИнформационнойБазы.
// Назначает для информационной базы использование профиля безопасности безопасного режима.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИБ - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  ИмяПрофиля - Строка - имя профиля безопасности. Если передана пустая строка - для информационной базы будет
//    отключено использование профиля безопасности безопасного режима.
//
Процедура УстановитьПрофильБезопасностиБезопасногоРежимаИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено, Знач ИмяПрофиля = "") Экспорт
	
	Если ПараметрыАдминистрированияИБ = Неопределено Тогда
		ПараметрыАдминистрированияИБ = ПараметрыАдминистрированияКластера;
	КонецЕсли;
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.УстановитьПрофильБезопасностиБезопасногоРежимаИнформационнойБазы(
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИБ,
		ИмяПрофиля);
	
КонецПроцедуры

// Устарела. Следует использовать АдминистрированиеКластера.ПрофильБезопасностиСуществует.
// Проверяет существование в кластере серверов профиля безопасности.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ИмяПрофиля - Строка - имя профиля безопасности, существование которого проверяется.
//
// Возвращаемое значение:
//   Булево - Истина если профиль с указанным именем существует, Ложь - если не существует.
//
Функция ПрофильБезопасностиСуществует(Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.ПрофильБезопасностиСуществует(
		ПараметрыАдминистрированияКластера,
		ИмяПрофиля);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваПрофиляБезопасности.
// Конструктор структуры, описывающей свойства профиля безопасности.
//
// Возвращаемое значение: 
//   Структура:
//     * Имя - Строка - имя профиля безопасности,
//     * Описание - Строка - описание профиля безопасности,
//     * ПрофильБезопасногоРежима - Булево - определяет возможность использования профиля безопасности
//       в качестве профиля безопасности безопасного режима (как при указании в качестве профиля
//       безопасного режима для информационной базы, так и при вызове УстановитьБезопасныйРежим(<Имя профиля>) из кода конфигурации,
//     * ПолныйДоступКПривилегированномуРежиму - Булево - определяет возможность установки
//       привилегированного режима из безопасного режима данного профиля безопасности,
//     * ПолныйДоступКФайловойСистеме - Булево - определяет наличие ограничений на доступ к файловой
//       системе. При установке значения равным Ложь, доступ будет предоставлен только к каталогам файловой
//       системы, перечисленным в свойстве ВиртуальныеКаталоги,
//     * ПолныйДоступКCOMОбъектам - Булево - определяет наличие ограничений на доступ к использованию
//       COMОбъектов. При установке значения равным Ложь, доступ будет предоставлен только к COM-классам,
//       перечисленным в свойстве COMКлассы,
//     * ПолныйДоступКВнешнимКомпонентам - Булево - определяет наличие ограничений на доступ к использованию
//       внешних компонент. При установке значения равным Ложь, доступ будет предоставлен только к внешним
//       компонентам, перечисленным в свойстве ВнешниеКомпоненты,
//     * ПолныйДоступКВнешнимМодулям - Булево - определяет наличие ограничений на доступ к использованию
//       внешних модулей (внешние отчеты и обработки, вызовы Выполнить() и Вычислить()) в небезопасном режиме.
//       При установке значения равным Ложь, будет предоставлена возможность использовать в небезопасном
//       режиме только внешние модули, перечисленные в свойстве ВнешниеМодули,
//     * ПолныйДоступКПриложениямОперационнойСистемы - Булево - определяет наличие ограничений на доступ к
//       использованию приложений операционной системы. При установке значения равным Ложь, будет предоставлена
//       возможность использовать только приложения операционной системы, перечисленные в свойстве ПриложенияОС,
//     * ПолныйДоступКИнтернетРесурсам - Булево - определяет наличие ограничений на доступ к использованию
//       Интернет-ресурсов. При установке значения равным Ложь, будет предоставлена возможность использовать
//       только Интернет-ресурсы, перечисленные в свойстве ИнтернетРесурсы,
//     * ВиртуальныеКаталоги - Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваВиртуальногоКаталога
//     * COMКлассы - Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваCOMКласса
//     * ВнешниеКомпоненты - Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваВнешнейКомпоненты
//     * ВнешниеМодули - Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваВнешнегоМодуля
//     * ПриложенияОС - Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваПриложенияОС
//     * ИнтернетРесурсы - Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваИнтернетРесурса
//
Функция СвойстваПрофиляБезопасности() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("Имя", "");
	Результат.Вставить("Описание", "");
	Результат.Вставить("ПрофильБезопасногоРежима", Ложь);
	Результат.Вставить("ПолныйДоступКПривилегированномуРежиму", Ложь);
	
	Результат.Вставить("ПолныйДоступКФайловойСистеме", Ложь);
	Результат.Вставить("ПолныйДоступКCOMОбъектам", Ложь);
	Результат.Вставить("ПолныйДоступКВнешнимКомпонентам", Ложь);
	Результат.Вставить("ПолныйДоступКВнешнимМодулям", Ложь);
	Результат.Вставить("ПолныйДоступКПриложениямОперационнойСистемы", Ложь);
	Результат.Вставить("ПолныйДоступКИнтернетРесурсам", Ложь);
	
	Результат.Вставить("ВиртуальныеКаталоги", Новый Массив());
	Результат.Вставить("COMКлассы", Новый Массив());
	Результат.Вставить("ВнешниеКомпоненты", Новый Массив());
	Результат.Вставить("ВнешниеМодули", Новый Массив());
	Результат.Вставить("ПриложенияОС", Новый Массив());
	Результат.Вставить("ИнтернетРесурсы", Новый Массив());
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваВиртуальногоКаталога.
// Конструктор структуры, описывающей свойства виртуального каталога.
//
// Возвращаемое значение: 
//   Структура:
//     * ЛогическийURL - Строка - логический URL каталога,
//     * ФизическийURL - Строка - физический URL каталога на сервере для размещения данных
//       виртуального каталога,
//     * Описание - Строка - описание виртуального каталога,
//     * ЧтениеДанных - Булево - флаг разрешения чтения данных из виртуального каталога,
//     * ЗаписьДанных - Булево - флаг разрешения записи данных в виртуальный каталог.
//
Функция СвойстваВиртуальногоКаталога() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("ЛогическийURL");
	Результат.Вставить("ФизическийURL");
	
	Результат.Вставить("Описание");
	
	Результат.Вставить("ЧтениеДанных");
	Результат.Вставить("ЗаписьДанных");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваCOMКласса.
// Конструктор структуры, описывающей свойства COM-класса.
//
// Возвращаемое значение:
//   Структура:
//     * Имя - Строка - имя COM-класса, используется в качестве ключа при поиске,
//     * Описание - Строка - описание COM-класса,
//     * ФайлМоникер - Строка - имя файла, по которому создается объект методом глобального 
//       контекста ПолучитьCOMОбъект() с пустым значением второго параметра,
//     * CLSID - Строка - представление идентификатора COM-класса в формате системного реестра MS Windows 
//       без фигурных скобок, по которому он может быть создан операционной системой,
//     * Компьютер - Строка - имя компьютера, на котором может быть создан COM-объект.
//
Функция СвойстваCOMКласса() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("Имя");
	Результат.Вставить("Описание");
	
	Результат.Вставить("ФайлМоникер");
	Результат.Вставить("CLSID");
	Результат.Вставить("Компьютер");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваВнешнейКомпоненты.
// Конструктор структуры, описывающей свойства внешней компоненты.
//
// Возвращаемое значение:
//   Структура:
//     * Имя - Строка - имя внешней компоненты, используется в качестве ключа для поиска,
//     * Описание - Строка - описание внешней компоненты,
//     * ХэшСумма - Строка - контрольная сумма разрешенной внешней компоненты, вычисленная алгоритмом
//       SHA-1 и преобразованная к строке base64.
//
Функция СвойстваВнешнейКомпоненты() Экспорт
	
	Результат = Новый Структура();
	Результат.Вставить("Имя");
	Результат.Вставить("Описание");
	Результат.Вставить("ХэшСумма"); // АПК:1036 для обратной совместимости
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваВнешнегоМодуля.
// Конструктор структуры, описывающей свойства внешнего модуля.
//
// Возвращаемое значение:
//   Структура:
//     * Имя - Строка - имя внешнего модуля, используется в качестве ключа для поиска,
//     * Описание - Строка - описание внешнего модуля,
//     * ХэшСумма - Строка - контрольная сумма разрешенного внешнего модуля, вычисленная алгоритмом
//       SHA-1 и преобразованная к строке base64.
//
Функция СвойстваВнешнегоМодуля() Экспорт
	
	Результат = Новый Структура();
	Результат.Вставить("Имя");
	Результат.Вставить("Описание");
	Результат.Вставить("ХэшСумма"); // АПК:1036 для обратной совместимости
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваПриложенияОС.
// Конструктор структуры, описывающей свойства приложения операционной системы.
//
// Возвращаемое значение:
//   Структура:
//     * Имя - Строка - имя приложения операционной системы, используется в качестве ключа для поиска,
//     * Описание - Строка - описание приложения операционной системы,
//     * ШаблонСтрокиЗапуска - Строка - шаблон строки запуска приложения (состоит из последовательности
//       шаблонных слов, разделенных пробелами).
//
Функция СвойстваПриложенияОС() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("Имя");
	Результат.Вставить("Описание");
	
	Результат.Вставить("ШаблонСтрокиЗапуска");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваИнтернетРесурса.
// Конструктор структуры, описывающей Интернет-ресурс.
//
// Возвращаемое значение:
//   Структура:
//     * Имя - Строка - имя Интернет-ресурса, используется в качестве ключа для поиска,
//     * Описание - Строка - описание Интернет-ресурса,
//     * Протокол - Строка - разрешаемый сетевой протокол. Возможные значения:
//         HTTP,
//         HTTPS,
//         FTP,
//         FTPS,
//         POP3,
//         SMTP,
//         IMAP,
//     * Адрес - Строка - сетевой адрес Интернет-ресурса без указания протокола и порта,
//     * Порт - Число - сетевой порт Интернет-ресурса.
//
Функция СвойстваИнтернетРесурса() Экспорт
	
	Результат = Новый Структура();
	
	Результат.Вставить("Имя");
	Результат.Вставить("Описание");
	
	Результат.Вставить("Протокол");
	Результат.Вставить("Адрес");
	Результат.Вставить("Порт");
	
	Возврат Результат;
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.ПрофильБезопасности.
// Возвращает свойства профиля безопасности.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ИмяПрофиля - Строка - имя профиля безопасности.
//
// Возвращаемое значение:
//   см. АдминистрированиеКластераКлиентСервер.СвойстваПрофиляБезопасности.
//
Функция ПрофильБезопасности(Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.ПрофильБезопасности(
		ПараметрыАдминистрированияКластера,
		ИмяПрофиля);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СоздатьПрофильБезопасности.
// Создает профиль безопасности по переданному описанию.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  СвойстваПрофиляБезопасности - см. АдминистрированиеКластераКлиентСервер.СвойстваПрофиляБезопасности.
//
Процедура СоздатьПрофильБезопасности(Знач ПараметрыАдминистрированияКластера, Знач СвойстваПрофиляБезопасности) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.СоздатьПрофильБезопасности(
		ПараметрыАдминистрированияКластера,
		СвойстваПрофиляБезопасности);
	
КонецПроцедуры

// Устарела. Следует использовать АдминистрированиеКластера.УстановитьСвойстваПрофиляБезопасности.
// Устанавливает свойства для существующего профиля безопасности по переданному описанию.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  СвойстваПрофиляБезопасности - см. АдминистрированиеКластераКлиентСервер.СвойстваПрофиляБезопасности.
//
Процедура УстановитьСвойстваПрофиляБезопасности(Знач ПараметрыАдминистрированияКластера, Знач СвойстваПрофиляБезопасности)  Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.УстановитьСвойстваПрофиляБезопасности(
		ПараметрыАдминистрированияКластера,
		СвойстваПрофиляБезопасности);
	
КонецПроцедуры

// Устарела. Следует использовать АдминистрированиеКластера.УдалитьПрофильБезопасности.
// Удаляет профиль безопасности.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ИмяПрофиля - Строка - имя профиля безопасности.
//
Процедура УдалитьПрофильБезопасности(Знач ПараметрыАдминистрированияКластера, Знач ИмяПрофиля) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	МенеджерАдминистрирования.УдалитьПрофильБезопасности(
		ПараметрыАдминистрированияКластера,
		ИмяПрофиля);
	
КонецПроцедуры

#КонецОбласти

#Область ИнформационныеБазы

// Устарела. Следует использовать АдминистрированиеКластера.ИдентификаторИнформационнойБазы.
// Возвращает внутренний идентификатор информационной базы.
//
// Параметры:
//  ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов,
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ПараметрыАдминистрированияИнформационнойБазы - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//
// Возвращаемое значение:
//   Строка - внутренний идентификатор информационной базы.
//
Функция ИдентификаторИнформационнойБазы(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИнформационнойБазы) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.ИдентификаторИнформационнойБазы(
		ИдентификаторКластера,
		ПараметрыАдминистрированияКластера,
		ПараметрыАдминистрированияИнформационнойБазы);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваИнформационныхБаз.
// Возвращает описания информационных баз.
//
// Параметры:
//  ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов,
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  Фильтр - Структура - параметры фильтрации информационных баз.
//
// Возвращаемое значение:
//  Массив из Структура
//
Функция СвойстваИнформационныхБаз(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.СвойстваИнформационныхБаз(
		ИдентификаторКластера,
		ПараметрыАдминистрированияКластера,
		Фильтр);
	
КонецФункции

#КонецОбласти

#Область Кластер

// Устарела. Следует использовать АдминистрированиеКластера.ИдентификаторКластера.
// Возвращает внутренний идентификатор кластера серверов.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера.
//
// Возвращаемое значение:
//   Строка - внутренний идентификатор кластера серверов.
//
Функция ИдентификаторКластера(Знач ПараметрыАдминистрированияКластера) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.ИдентификаторКластера(ПараметрыАдминистрированияКластера);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваКластеров.
// Возвращает описания кластеров серверов.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  Фильтр - Структура - параметры фильтрации кластеров серверов.
//
// Возвращаемое значение:
//   Массив из Структура
//
Функция СвойстваКластеров(Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.СвойстваКластеров(ПараметрыАдминистрированияКластера, Фильтр);
	
КонецФункции

#КонецОбласти

#Область РабочиеПроцессыСерверы

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваРабочихПроцессов.
// Возвращает описания рабочих процессов.
//
// Параметры:
//  ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов,
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  Фильтр - Структура - параметры фильтрации рабочих процессов.
//
// Возвращаемое значение:
//   Массив из Структура 
//
Функция СвойстваРабочихПроцессов(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.СвойстваРабочихПроцессов(
		ИдентификаторКластера,
		ПараметрыАдминистрированияКластера,
		Фильтр);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваРабочихСерверов.
// Возвращает описания рабочих серверов.
//
// Параметры:
//  ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов,
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  Фильтр - Структура - параметры фильтрации рабочих серверов.
//
// Возвращаемое значение:
//   Массив из Структура
//
Функция СвойстваРабочихСерверов(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.СвойстваРабочихСерверов(
		ИдентификаторКластера,
		ПараметрыАдминистрированияКластера,
		Фильтр);
	
КонецФункции

#КонецОбласти

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваСеансов.
// Возвращает описания сеансов информационной базы.
//
// Параметры:
//  ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов,
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ИдентификаторИнформационнойБазы - Строка - внутренний идентификатор информационной базы,
//  Фильтр - Массив из Структура:
//             * Свойство - см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса
//             * ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения,
//             * Значение - Число
//                        - Строка
//                        - Дата
//                        - Булево
//                        - СписокЗначений
//                        - Массив
//                        - Структура - значение, с которым
//               сравнивается значение соответствующего свойства сеанса.
//         - Структура - структура: ключ - Имя свойства сеанса (см. выше), значение - значение, с которым
//           выполняется сеанс. При использовании данного варианта описания фильтра сравнение всегда выполняется на
//           равенство.
//  ИспользоватьСловарь - Булево - если Истина, то возвращаемый результат будет заполнен с использован словаря, иначе - без
//    использования.
//
// Возвращаемое значение:
//   - Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса
//   - Массив из Соответствие
//
Функция СвойстваСеансов(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Истина) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.СвойстваСеансов(
		ИдентификаторКластера,
		ПараметрыАдминистрированияКластера,
		ИдентификаторИнформационнойБазы,
		Фильтр,
		ИспользоватьСловарь);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.СвойстваСоединений.
// Возвращает описания соединений с информационной базой.
//
// Параметры:
//  ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов,
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера
//  ИдентификаторИнформационнойБазы - Строка - внутренний идентификатор информационной базы,
//  ПараметрыАдминистрированияИнформационнойБазы - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияИнформационнойБазыКластера.
//  Фильтр - Массив из Структура:
//             * Свойство - см. АдминистрированиеКластераКлиентСервер.СвойстваСоединений
//             * ВидСравнения - ВидСравнения - значение системного перечисления ВидСравнения,
//             * Значение - Число
//                        - Строка
//                        - Дата
//                        - Булево
//                        - СписокЗначений
//                        - Массив
//                        - Структура - значение, с которым
//               сравнивается значение соответствующего свойства соединения.
//         - Структура - структура: ключ - Имя свойства соединения (см. выше), значение - значение, с которым
//           выполняется соединение. При использовании данного варианта описания фильтра сравнение всегда выполняется на
//           равенство.
//  ИспользоватьСловарь - Булево - если Истина - возвращаемый результат будет заполнен с использованием словаря.
//
// Возвращаемое значение:
//   - Массив из см. АдминистрированиеКластераКлиентСервер.СвойстваСоединений
//   - Массив из Соответствие
//
Функция СвойстваСоединений(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач ПараметрыАдминистрированияИнформационнойБазы, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Ложь) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.СвойстваСоединений(
		ИдентификаторКластера,
		ПараметрыАдминистрированияКластера,
		ИдентификаторИнформационнойБазы,
		ПараметрыАдминистрированияИнформационнойБазы,
		Фильтр,
		ИспользоватьСловарь);
	
КонецФункции

// Устарела. Следует использовать АдминистрированиеКластера.ПутьККлиентуСервераАдминистрирования.
// Возвращает путь к консольному клиенту сервера администрирования.
//
// Параметры:
//  ПараметрыАдминистрированияКластера - см. АдминистрированиеКластераКлиентСервер.ПараметрыАдминистрированияКластера.
//
// Возвращаемое значение:
//  Строка
//
Функция ПутьККлиентуСервераАдминистрирования(Знач ПараметрыАдминистрированияКластера) Экспорт
	
	МенеджерАдминистрирования = МенеджерАдминистрирования(ПараметрыАдминистрированияКластера);
	
	Возврат МенеджерАдминистрирования.ПутьККлиентуСервераАдминистрирования();
	
КонецФункции

#КонецОбласти

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Процедура ДобавитьУсловиеФильтра(Фильтр, Знач Свойство, Знач ВидСравненияЗначений, Знач Значение) Экспорт
	
	Если Фильтр = Неопределено Тогда
		
		Если ВидСравненияЗначений = ВидСравнения.Равно Тогда
			
			Фильтр = Новый Структура;
			Фильтр.Вставить(Свойство, Значение);
			
		Иначе
			
			Фильтр = Новый Массив;
			ДобавитьУсловиеФильтра(Фильтр, Свойство, ВидСравненияЗначений, Значение);
			
		КонецЕсли;
		
	ИначеЕсли ТипЗнч(Фильтр) = Тип("Структура") Тогда
		
		НовыйФильтр = Новый Массив;
		
		Для каждого КлючИЗначение Из Фильтр Цикл
			
			ДобавитьУсловиеФильтра(НовыйФильтр, КлючИЗначение.Ключ, ВидСравнения.Равно, КлючИЗначение.Значение);
			
		КонецЦикла;
		
		ДобавитьУсловиеФильтра(НовыйФильтр, Свойство, ВидСравненияЗначений, Значение);
		
		Фильтр = НовыйФильтр;
		
	ИначеЕсли ТипЗнч(Фильтр) = Тип("Массив") Тогда
		
		Фильтр.Добавить(Новый Структура("Свойство, ВидСравнения, Значение", Свойство, ВидСравненияЗначений, Значение));
		
	Иначе
		
		ВызватьИсключение НСтр("ru = 'Некорректно задано описание фильтра.'");
		
	КонецЕсли;
	
КонецПроцедуры

Функция ПроверитьУсловияФильтра(Знач ПроверяемыйОбъект, Знач Фильтр = Неопределено) Экспорт
	
	Если Фильтр = Неопределено Или Фильтр.Количество() = 0 Тогда
		Возврат Истина;
	КонецЕсли;
	
	ВыполненоУсловий = 0;
	
	Для Каждого Условие Из Фильтр Цикл
		
		Если ТипЗнч(Условие) = Тип("Структура") Тогда
			
			Поле = Условие.Свойство;
			ТребуемоеЗначение = Условие.Значение;
			ВидСравненияЗначений = Условие.ВидСравнения;
			
		ИначеЕсли ТипЗнч(Условие) = Тип("КлючИЗначение") Тогда
			
			Поле = Условие.Ключ;
			ТребуемоеЗначение = Условие.Значение;
			ВидСравненияЗначений = ВидСравнения.Равно;
			
		Иначе
			
			ВызватьИсключение НСтр("ru = 'Некорректно задан фильтр.'");
			
		КонецЕсли;
		
		ПроверяемоеЗначение = ПроверяемыйОбъект[Поле];
		УсловиеВыполнено = ПроверитьУсловиеФильтра(ПроверяемоеЗначение, ВидСравненияЗначений, ТребуемоеЗначение);
		
		Если УсловиеВыполнено Тогда
			ВыполненоУсловий = ВыполненоУсловий + 1;
		Иначе
			Прервать;
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат ВыполненоУсловий = Фильтр.Количество();
	
КонецФункции

Функция ПроверитьУсловиеФильтра(Знач ПроверяемоеЗначение, Знач ВидСравненияЗначений, Знач Значение)
	
	Если ВидСравненияЗначений = ВидСравнения.Равно Тогда
		
		Возврат ПроверяемоеЗначение = Значение;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.НеРавно Тогда
		
		Возврат ПроверяемоеЗначение <> Значение;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.Больше Тогда
		
		Возврат ПроверяемоеЗначение > Значение;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.БольшеИлиРавно Тогда
		
		Возврат ПроверяемоеЗначение >= Значение;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.Меньше Тогда
		
		Возврат ПроверяемоеЗначение < Значение;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.МеньшеИлиРавно Тогда
		
		Возврат ПроверяемоеЗначение <= Значение;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.ВСписке Тогда
		
		Если ТипЗнч(Значение) = Тип("СписокЗначений") Тогда
			
			Возврат Значение.НайтиПоЗначению(ПроверяемоеЗначение) <> Неопределено;
			
		ИначеЕсли ТипЗнч(Значение) = Тип("Массив") Тогда
			
			Возврат Значение.Найти(ПроверяемоеЗначение) <> Неопределено;
			
		КонецЕсли;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.НеВСписке Тогда
		
		Если ТипЗнч(Значение) = Тип("СписокЗначений") Тогда
			
			Возврат Значение.НайтиПоЗначению(ПроверяемоеЗначение) = Неопределено;
			
		ИначеЕсли ТипЗнч(Значение) = Тип("Массив") Тогда
			
			Возврат Значение.Найти(ПроверяемоеЗначение) = Неопределено;
			
		КонецЕсли;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.Интервал Тогда
		
		Возврат ПроверяемоеЗначение > Значение.С И ПроверяемоеЗначение < Значение.По;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.ИнтервалВключаяГраницы Тогда
		
		Возврат ПроверяемоеЗначение >= Значение.С И ПроверяемоеЗначение <= Значение.По;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.ИнтервалВключаяНачало Тогда
		
		Возврат ПроверяемоеЗначение >= Значение.С И ПроверяемоеЗначение < Значение.По;
		
	ИначеЕсли ВидСравненияЗначений = ВидСравнения.ИнтервалВключаяОкончание Тогда
		
		Возврат ПроверяемоеЗначение > Значение.С И ПроверяемоеЗначение <= Значение.По;
		
	КонецЕсли;
	
КонецФункции

Функция МенеджерАдминистрирования(Знач ПараметрыАдминистрирования)
	
	Если ПараметрыАдминистрирования.ТипПодключения = "COM" Тогда
		
		Возврат АдминистрированиеКластераCOMКлиентСервер;
		
	ИначеЕсли ПараметрыАдминистрирования.ТипПодключения = "RAS" Тогда
		
		Возврат АдминистрированиеКластераRASКлиентСервер;
		
	Иначе
		
		ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестный тип подключения: %1.'"), ПараметрыАдминистрирования.ТипПодключения);
		
	КонецЕсли;
	
КонецФункции

Функция ПустаяДата() Экспорт
	
	Возврат Дата(1, 1, 1, 0, 0, 0);
	
КонецФункции

#КонецОбласти


